#pragma once

#include "Date.h"
#include "Time.h"
#include "Event.h"
#include "Additional.h"
#include "ProcessList.h"
#include <iostream>
#include <sstream>
#include <string>
#include <string.h>
#include <vector>
#include <cstdlib>
#include <stack>
#include <cassert>


using namespace std;


class ProcessHistory
{
public:
	ProcessHistory(void);
	~ProcessHistory(void);

	void addEvent(vector<Date>& historyList, struct Task currentTask);
	void deleteEvent (vector<Date>& historyList, vector<Event>& pendingList ,struct Task currentTask);
	bool editEvent (vector<Date>& historyList, vector<Event>& pendingList , vector<Date>& currentList, struct Task currentTask);
	bool markAsDone (vector<Date>& historyList, vector<Event>& pendingList, struct Task currentTask);
	void showHistory (vector<Date>& historyList, vector<Event>& pendingList);
	bool showEvents (vector<Date>& historyList, vector<Event>& pendingList ,struct Task currentTask);

private:
	void fillDates(vector<Date>& historyList, int index);
	
	bool hasString(string userInput, string stringToBeSearched);
};

